
先说结果
dsh-vision-router是 DeepSeek Harness(DSH)生态里最火的视觉插件之一,GitHub 1.1K Star,MIT 协议,作者 ysr666。它给纯文本的 DeepSeek Agent 装上"眼睛"——内置免费视觉链(无需 API Key)+ 14 个像素级工具(看图问答、目标定位、元素检测、裁剪、像素对比、取色、OCR、SVG矢量化、抠图、HTML截图等)。一行命令安装,不需要 Python,视觉模型只当"眼睛",DeepSeek 永远是"大脑",图片轮次像普通工具调用一样自然。
一、这是什么:给纯文本 Agent 装上眼睛
DeepSeek 的主力模型是纯文本的——你丢一张截图过去,它看不到。这在日常使用中很别扭:报错截图要手打文字、设计稿要口头描述、网页截图要逐字转录。
dsh-vision-router 解决的就是这个问题。它不是把图片丢给视觉模型拿一段描述就完事,而是把视觉能力拆成 14 个像素级工具,让 DeepSeek Agent 自己决定什么时候用、怎么用。
核心设计理念:
👁
视觉模型只是眼睛,DeepSeek 永远是大脑:图片轮次不会被一次性视觉答案劫持。Agent 驱动工具自己操作图片,可以在一张图上持续多步——先 OCR 提取文字,再 ground 定位按钮,然后 crop 放大细节,最后 pixel_diff 对比修改效果。
🔧
14 个像素级工具,不是一个"看图说话":从目标定位到像素对比,从 OCR 到 SVG 矢量化,每个工具干一件事,Agent 可以组合使用。
🆓
内置免费视觉链,零配置即用:匿名 OVH 视觉回退已配置,不需要注册账号、不需要 API Key。也可以接入 Groq、Google AI Studio、NVIDIA NIM 等免费渠道。
⚡
一行命令安装,不需要 Python:基于 sharp / potrace / tesseract / system Chrome,全程 Node.js 实现。
项目基本信息:
| 项目 |
信息 |
| GitHub 仓库 |
github.com/ysr666/dsh-vision-router |
| Star 数 |
约 1.1K |
| 开源协议 |
MIT |
| 开发语言 |
JavaScript(Node.js) |
| 创建时间 |
2026 年 8 月 13 日 |
| 适用环境 |
DeepSeek Harness Web / Oh-DSH Desktop |
二、核心设计:视觉是眼睛,DeepSeek 是大脑
很多视觉插件的做法是:图片来了 → 调一次视觉模型 → 返回一段文字描述 → 结束。这有两个问题:一是描述可能丢失关键细节,二是 Agent 无法对图片做进一步操作。
dsh-vision-router 的做法完全不同:
工作原理
1
启用 Vision 模式:点击输入框旁的 "👁 Vision" 按钮,会话切换到该模型的内部视觉包装路由(wrapper route),右下角模型选择器仍然选你的"大脑"模型(DeepSeek/Qwen等)。
2
粘贴/上传图片:图片正常上传,Agent 看到图片后,根据任务需要自主调用 14 个视觉工具中的一个或多个。
3
Agent 驱动工具链:比如分析一个网页截图——先 vision_ocr 提取所有文字,再 vision_detect 列出所有按钮和输入框,然后 vision_ground 定位特定元素,最后 vision_crop 放大某个区域细看。每一步都是 DeepSeek 在决策,视觉模型只负责"看"。
4
图片记忆:视觉答案按附件内容哈希缓存,后续纯文本轮次会自动替换为记录的描述(标记为不可信证据),DeepSeek 能"记住"之前看过的图片,不需要重复调用视觉模型。
关键特性:
✅
原始像素、真实答案:视觉链以原始分辨率读取图片(仅为保护延迟/配额自动降采样),Agent 的问题随图片一起发送,答案是针对"你的问题"的,不是通用描述。
✅
自动故障转移:区域封锁、ToS 过滤、402 配额、429 限流、上下文溢出、网络失败——链逐个尝试提供商,全部失败才报告,并给出可操作建议。429 立即跳到下一个后端并开启 Retry-After 感知的冷却期。
✅
稳定工具架构:14 个工具从会话开始全部注册,避免对话中途工具列表扩展导致长上下文 KV/prefix 缓存失效。
✅
选择性代理:只有配置的视觉提供商走本地代理,DeepSeek 保持直连,不影响主模型速度。
三、14 个像素级工具详解
这是 dsh-vision-router 的核心竞争力——不是一个"看图说话"接口,而是一套完整的像素级工具集。
| 工具名 |
功能 |
输出 |
典型场景 |
vision_describe |
看图问答,针对具体问题描述图片 |
文字回答 |
"这张图里有什么?""这个报错是什么意思?" |
vision_ground |
目标定位,找到指定物体的位置 |
原图像素框 x1/y1/x2/y2 + 可选标注PNG |
"登录按钮在哪?""找到红色的那个元素" |
vision_detect |
元素检测,编号列出某类所有元素 |
编号元素清单 + 坐标 + 标注PNG |
"列出页面上所有按钮/输入框/链接" |
vision_crop |
按像素框裁剪放大 |
PNG 图片 |
放大某个区域细看细节 |
vision_pixel_diff |
像素级对比两张图 |
差异比例 + 8×8网格最差区域 + 红色热力图 + JSON |
UI还原验证、修改前后对比、A/B测试 |
vision_colors |
主色量化提取 |
调色板(颜色+占比) |
配色分析、设计稿取色、品牌色匹配 |
vision_ocr |
逐字文字转录 |
纯文字(保留标题/表格/UI层级) |
截图转文字、文档扫描、报错信息提取 |
vision_svg_trace |
位图转SVG矢量化 |
SVG 文件 |
Logo矢量化、图标转换、线稿提取 |
vision_cutout |
抠图(背景移除) |
透明背景PNG |
产品图抠图、人像分离、素材处理 |
vision_html_screenshot |
本地HTML渲染截图 |
PNG 截图 |
UI还原验证、网页预览、设计稿对比 |
vision_present |
发布本地图片为聊天附件 |
图片附件 |
把Agent生成/编辑的图片展示给用户 |
像素循环:UI 还原的杀手锏
dsh-vision-router 最惊艳的用法是"可验证的像素循环":参考图 → vision_html_screenshot 渲染当前实现 → vision_pixel_diff 对比差异(比例+8×8网格最差区域)→ 修复 → 重复直到差异收敛。官方案例中,Agent 从参考图重建 UI,最终像素差异仅 2.54%(32,939 / 1,296,000 像素不同,阈值16/通道)。UI 还原从此可量化,不再是"看着差不多"。
四、3 分钟上手:安装 + 启用 + 第一张图
1
安装插件:在终端运行一行命令。正常 npm/npx 安装用 npx @deepseek-ai/dsh plugin --profile web add dsh-vision-router;从源码检出用 pnpm dsh plugin --profile web add dsh-vision-router;Oh-DSH Desktop 需要指定 DSH_HOME。
2
重载 DSH Web:安装后重启或重载 DSH Web 进程,让插件包被发现。插件加载后,模型目录和包装范围的变更支持热更新,不需要再重启。
3
选大脑模型:右下角模型选择器照常选你的对话模型(DeepSeek、Qwen 等),视觉后端不在这个选择器里。
4
启用 Vision:点击输入框旁边的 "👁 Vision" 按钮,状态变为 "👁 Vision ✓"。这个模式跨发送保持,不会自动重置;切换不同的普通模型会关闭 Vision。
5
粘贴图片:直接粘贴或上传图片,Agent 会自动调用视觉工具。注意:粘贴图片不会自动启用 Vision,发送前必须确认按钮显示 "👁 Vision ✓"。
五、三套实战指令模板
我粘贴了一张报错截图,请按以下步骤分析:
1. 先用 vision_ocr 提取截图中所有文字,包括错误代码、文件路径、行号
2. 用 vision_describe 分析这个报错的类型和原因
3. 如果截图中有代码片段,用 vision_crop 放大代码区域细看
4. 给出:错误原因分析、可能的修复方案(按优先级排序)、需要检查的文件和行号
5. 如果是环境配置问题,给出具体的命令或配置修改建议
截图已粘贴在上方,启用了 Vision 模式。
我上传了一张 UI 设计参考图,请帮我还原成 HTML/CSS:
1. 先用 vision_colors 提取设计稿的主色调色板
2. 用 vision_detect 列出页面上所有元素(按钮、输入框、文字区域、图标等),编号标注
3. 用 vision_ground 定位关键元素的位置和尺寸比例
4. 生成 HTML + CSS 实现,保存到 ./ui-rebuild/index.html
5. 用 vision_html_screenshot 渲染生成的页面截图
6. 用 vision_pixel_diff 对比参考图和实现截图,给出差异比例和最差区域
7. 根据差异结果迭代修复,直到像素差异低于 5%
参考图已上传,启用了 Vision 模式。输出目录:./ui-rebuild/
我粘贴了一张长截图(包含表格和多级标题),请结构化提取内容:
1. 用 vision_ocr 提取全部文字,保留标题层级和表格结构
2. 用 vision_describe 分析文档的整体结构和章节划分
3. 如果有表格区域,用 vision_crop 单独放大每个表格,确保数据准确
4. 输出为 Markdown 格式:保留标题层级(#/##/###)、表格用 Markdown 表格、代码块用 ``` 包裹
5. 对提取到的数据做一致性检查(合计行是否等于明细之和等)
6. 保存到 ./extracted-doc.md
长截图已粘贴,启用了 Vision 模式。注意:这是长截图,文字较多,请仔细识别不要遗漏。
六、免费视觉模型渠道
dsh-vision-router 内置匿名 OVH 视觉回退,零配置可用。如果想接入自己的免费 API Key,以下渠道都可以加入视觉链:
| 渠道 |
免费视觉模型 |
免费额度 |
国内直连 |
| Groq |
llama-4-scout-17b-16e-instruct |
30 RPM / 14,400 req/day |
需代理 |
| Google AI Studio |
gemini-2.5-flash / flash-lite |
10-30 RPM / 500-1,500 req/day |
需代理 |
| NVIDIA NIM |
llama-3.2-11b-vision-instruct |
40 RPM |
部分可用 |
| OpenCode Zen |
mimo-v2.5-free(视觉+代码) |
30 RPM / 500 req/day |
部分可用 |
| OpenRouter |
gemma-4-26b/31b-it:free |
50 req/day |
需代理 |
配置方式:在 Settings → Vision Router 中,每个视觉后端行可以选择任何已配置的可调用生成模型。留空所有行也有效——OVH 链作为最终回退。免费额度政策可能随时变化,建议关注各平台公告。
七、适合谁?不适合谁?
适合场景
✅
DSH 日常用户:经常需要分析截图、报错信息、设计稿,但 DeepSeek 纯文本模型看不到图。
✅
前端/UI 开发者:需要从设计稿还原 UI,并用像素级对比验证还原度。
✅
需要 OCR 和文档处理:截图转文字、长文档结构化提取、表格数据提取。
✅
零配置党:不想注册 API Key、不想配环境,装完即用。
不适合直接使用的场景
❌
不用 DSH 的用户:这是 DeepSeek Harness 插件,不能独立使用,也不支持其他 AI 客户端。
❌
需要高精度专业视觉任务:医学影像分析、卫星图像、工业质检等需要专用模型,通用视觉链不够。
❌
批量图像处理:设计用于交互式 Agent 会话,不是批量处理管道,大量图片会触发免费额度限制。
❌
对延迟极度敏感:视觉工具调用涉及图像处理和模型推理,比纯文本回复慢,不适合实时交互场景。
八、避坑提醒
避坑提醒
1
粘贴图片不会自动启用 Vision:这是最常见的坑。发送图片前必须确认输入框旁的按钮显示 "👁 Vision ✓",否则图片会被纯文本模型忽略。
2
不要混用手动插件配置和 dsh plugin add:如果 profile 已通过 cordis.patch.yml 手动加载社区插件,再用 dsh plugin add 会导致插件注册两次。先把手动行迁移到 bundle 管理,或继续用手动安装方式。
3
Oh-DSH Desktop 版本兼容:Oh-DSH Desktop ≤ 0.1.5 捆绑的 DSH 版本与 dsh-vision-router v1.4.1 及更早版本冲突,启动时报 "configurable provider already declared"。必须安装 v1.4.2+。
4
与 dsh-web-ui 的兼容性:如果同时安装了 dsh-web-ui,需到 Settings → Plugin config → Image understanding 关闭 "Rewrite images to describe-image references on send",否则图片会被改写为描述引用,vision-router 收不到原始图片。
5
升级后像素工具报错:从 v1.1.x 升级后,如果像素工具报 "colourspace: parameter space not set",是旧版 sharp 0.34.0 的 libvips DLL 与宿主的 sharp 0.35.3 冲突。删除 profile 下的 node_modules/sharp 和 node_modules/@img,重启即可。
6
UTF-8 BOM 导致启动失败:如果编辑过 package.json 并保存为 UTF-8 with BOM,DSH 启动会报 "Unexpected token ... is not valid JSON"。用编辑器转为无 BOM 的 UTF-8 即可。
九、一句话收个尾
dsh-vision-router 的价值不在于"让 AI 能看图"——很多插件都能做到——而在于它把视觉能力拆成了 14 个可组合的像素级工具,让 DeepSeek Agent 像人一样"看了又看、比了又比"。OCR 提取文字、ground 定位元素、crop 放大细节、pixel_diff 量化差异,这才是 Agent 真正需要的视觉能力,而不是一段笼统的图片描述。1.1K Star、零配置免费视觉链、一行命令安装,DSH 用户值得装上试试。
作者声明:本作品含 AI 生成内容